
package hojatrabajo1;
public class RadioAM implements iRadio{
     private int Boton;
     private float estacion=530;
     private float estacion2= (float) 87.70;
     private float lista[];
     private float lista2[];
     private int contador=0;
     private int contador2=0;
     //constructor de la clase principal
     public RadioAM()
     {
       lista = new float[13];
       lista2 = new float[13];
       for(int i=0;i<13;i++)
       {
           lista[i]=0;
           lista2[i]=0;
       }
     }
     
    // Se cambia de AM para FM y viceversa    
     public boolean ChangeSignal()
     {
         contador++;              
         return true;

     }
     // Metodo para encender o apagar radio. Devuelve True  si esta encendido
     public boolean Power(){        
        contador2++;
        if((contador2%2)!=0)            
           return true;
        else
            return false;
     }
     // Metodo que devuelve la siguiente frecuencia de AM o FM segun sea el caso
     public float NextFreq(){
         if(this.IsAm())
         {     
            estacion=estacion+10;
            if(estacion==1620)
                estacion=530;         
            return estacion;
         }
         else
         {
             estacion2=(float) (estacion2+0.2);
             if(estacion2==107.9)
                 estacion2=(float) 87.9;           
             
             return estacion2;             
         }
             
     }
    // Guarda cualquier frecuencia sintonizada en cierto boton 
     public boolean SaveFreq(int Boton){
         if(this.IsAm())            
           lista[Boton]=this.GetFreq();           
         else
            lista2[Boton]=this.GetFreq(); 
         return true;
           
     }
     // Cambia de estacion a partir de lo que se tiene almacenado en botones 
     public float ChangeTune(int Boton){
         if(this.IsAm())
         {   
            if(lista[Boton]!=0)               
               estacion = lista[Boton];        
            return estacion;
            
         }
         else
         {
            if(lista2[Boton]!=0) 
              estacion2 = lista2[Boton];        
            return estacion;             
         }
     }
     // metodo para saber si el radio esta encendido o apagado el radio, devuelve true si esta encendido
     public boolean IsOn(){
        if((contador2%2)!=0)            
           return true;
        else
            return false;         
     }
     
    // metodo que devuelve si la radio esta en AM o FM 
     public boolean IsAm(){
         if((contador%2)==0)
           return true;
         else
            return false;
     
     }
     //devuelve la frecuencia actual sintonizada de AM o FM
     public float GetFreq(){
         if(this.IsAm())
           return estacion;
         else
           return estacion2;
     }

}
